/**
 * 
 */
package managedbeans;

import java.io.Serializable;
import java.sql.Timestamp;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import carroejb.CarroEJBRemote;
import entidades.Carro;

/**
 * @author Fernando
 * 
 */

@ManagedBean(name = "MBCarro")
@SessionScoped
public class MBCarro implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    /**
     * Este atributo sirve para poder trabajar con la EJB.
     */
    @EJB(name = "CEJB", mappedName = "CEJB")
    CarroEJBRemote cejb;

    /**
     * Variable auxiliar para idcarro de tipo int.
     */
    private int idCarro;
    /**
     * Variable auxiliar para usuario de tipo String.
     */
    private String usuario;
    /**
     * variable auxiliar para compraFin de tipo int.
     */
    private int compraFin;
    /**
     * Variable auxiliar para username de tpo String.
     */
    private String username;
    /**
     * Variable auxiliar para pass de tipo String.
     */
    private String pass;

    /**
     * Variable tipo Carro para poder trabajar con la EJB.
     */
    private Carro carro;

    /**
     * Lista de elementos carro para enviar y recibir a traves de la EJB.
     */
    private List<Carro> listC;

    /**
     * Metodo init asociado al tag postconstruct para inicializar el objeto
     * carro.
     */
    @PostConstruct
    public void init() {
        carro = new Carro();

    }

    /**
     * Constructor default.
     */
    public MBCarro() {

    }

    /**
     * Envia el nombre de usuario logeado al objeto carro de MB
     */
    public void addNombreUser() {
        cejb.addCarro(carro.getUsuario());
        listC = cejb.getListCarro();
        Carro aux = new Carro();
        aux = listC.get(listC.size() - 1);
        carro.setIdCarro(aux.getIdCarro());
    }

    /**
     * El metodo redirige a la pagina checkcarro.
     * 
     * @return el string de la pagina carro.
     */
    public String goToCheck() {

        return "checkcarro";
    }

    /**
     * @return the cejb
     */
    public CarroEJBRemote getCejb() {
        return cejb;
    }

    /**
     * @param cejb
     *            the cejb to set
     */
    public void setCejb(CarroEJBRemote cejb) {
        this.cejb = cejb;
    }

    /**
     * @return the idCarro
     */
    public int getIdCarro() {
        return idCarro;
    }

    /**
     * @param idCarro
     *            the idCarro to set
     */
    public void setIdCarro(int idCarro) {
        this.idCarro = idCarro;
    }

    /**
     * @return the usuario
     */
    public String getUsuario() {
        return usuario;
    }

    /**
     * @param usuario
     *            the usuario to set
     */
    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    /**
     * @return the compraFin
     */
    public int getCompraFin() {
        return compraFin;
    }

    /**
     * @param compraFin
     *            the compraFin to set
     */
    public void setCompraFin(int compraFin) {
        this.compraFin = compraFin;
    }

    
    /**
     * @return the username
     */
    public String getUsername() {
        return username;
    }

    /**
     * @param username
     *            the username to set
     */
    public void setUsername(String username) {
        this.username = username;
    }

    /**
     * @return the pass
     */
    public String getPass() {
        return pass;
    }

    /**
     * @param pass
     *            the pass to set
     */
    public void setPass(String pass) {
        this.pass = pass;
    }

    /**
     * @return the carro
     */
    public Carro getCarro() {
        return carro;
    }

    /**
     * @param carro
     *            the carro to set
     */
    public void setCarro(Carro carro) {
        this.carro = carro;
    }

    /**
     * @return the listC
     */
    public List<Carro> getListC() {
        return listC;
    }

    /**
     * @param listC
     *            the listC to set
     */
    public void setListC(List<Carro> listC) {
        this.listC = listC;
    }

    /**
     * @return the serialversionuid
     */
    public static long getSerialversionuid() {
        return serialVersionUID;
    }

}
